﻿' LibWowArmory
' by Ronald M. Clifford (roncli@roncli.com)
'
' This source code is released under the GNU Library General Public License (LGPL) Version 2.1.

Imports System.Collections.ObjectModel
Imports Newtonsoft.Json

Namespace roncliProductions.LibWowArmory.Character.Schema

    Public Class character

        <JsonProperty()> Public Property lastModified As Long
        <JsonProperty()> Public Property name As String
        <JsonProperty()> Public Property realm As String
        <JsonProperty()> Public Property [class] As Integer
        <JsonProperty()> Public Property race As Integer
        <JsonProperty()> Public Property gender As Integer
        <JsonProperty()> Public Property level As Integer
        <JsonProperty()> Public Property achievementPoints As Integer
        <JsonProperty()> Public Property thumbnail As String
        <JsonProperty()> Public Property guild As guild
        <JsonProperty()> Public Property items As items
        <JsonProperty()> Public Property stats As stats
        <JsonProperty()> Public Property professions As professions

        Private rReputation As New Collection(Of reputation)
        <JsonProperty()> Public ReadOnly Property reputation As Collection(Of reputation)
            Get
                Return rReputation
            End Get
        End Property

        Private tTitles As New Collection(Of title)
        <JsonProperty()> Public ReadOnly Property titles As Collection(Of title)
            Get
                Return tTitles
            End Get
        End Property

        <JsonProperty()> Public Property achievements As achievements

        Private pPets As New Collection(Of pet)
        <JsonProperty()> Public ReadOnly Property pets As Collection(Of pet)
            Get
                Return pPets
            End Get
        End Property

        Private tTalents As New Collection(Of talent)
        <JsonProperty()> Public ReadOnly Property talents As Collection(Of talent)
            Get
                Return tTalents
            End Get
        End Property

        <JsonProperty()> Public Property appearance As appearance

        Private intMounts As New Collection(Of Integer)
        <JsonProperty()> Public ReadOnly Property mounts As Collection(Of Integer)
            Get
                Return intMounts
            End Get
        End Property

        Private intCompanions As New Collection(Of Integer)
        <JsonProperty()> Public ReadOnly Property companions As Collection(Of Integer)
            Get
                Return intCompanions
            End Get
        End Property

        <JsonProperty()> Public Property progression As progression

    End Class

End Namespace
